package com.yanfan.energy.service;


import com.yanfan.energy.domain.*;

import java.util.List;
import java.util.Map;

/**
 * 生产记录表(BatchSegmentation)表服务接口
 *
 * @author makejava
 * @since 2023-01-09 18:32:43
 */
public interface BatchSegmentationService {

    /**
     * 通过ID查询单条数据
     *
     * @param id 主键
     * @return 实例对象
     */
    BatchSegmentation queryById(Long id);

    /**
     * 分页查询
     *
     * @param batchSegmentation 筛选条件
     * @return 查询结果
     */
    List<BatchSegmentation> queryByPage(BatchSegmentationRequest batchSegmentation);

    /**
     * 新增数据
     *
     * @param batchSegmentation 实例对象
     * @return 实例对象
     */
    BatchSegmentation insert(BatchSegmentation batchSegmentation) throws Exception;

    /**
     * 修改数据
     *
     * @param batchSegmentation 实例对象
     * @return 实例对象
     */
    BatchSegmentation update(BatchSegmentation batchSegmentation) throws Exception;

    /**
     * 通过主键删除数据
     *
     * @param id 主键
     * @return 是否成功
     */
    boolean deleteById(Long id);

    List<ProductionRecordResponse> queryList(BatchSegmentationRequest batchSegmentation);

    List<BatchSegmentationHead> getExportData(List<ProductionRecordResponse> list);

    /**
     * 查询生产统计的图表
     *
     * @param request
     * @return java.util.Map<java.lang.String, java.lang.Long>
     * @author caijinkang
     * @date 2023/4/11 15:56
     */
    Map<String, Long> productionRecordsChart(ProductionRecordsChartRequest request);

    List<ProductionDict> stateList();

}
